Many communications networks such as local area networks (LANs) use a network cable or other media to link network stations together on the network. Typically, each network station is free to communicate with other network stations on the network subject to the particular communications protocol used. However, when large amounts of data are transferred over networks, data congestion and data collisions often prevent the smooth transfer of data.
One solution to reduce data congestion and data collisions requires each network station to wait until data traffic on the media has temporarily subsided, providing a transmission window during which the network station can transmit its own data without collision. For example, the Ethernet protocol ISO/IEC 8802-3 (ANSI/IEEE Std. 802.3, 1993 edition) defines a half-duplex media access mechanism that permits all network stations to access the network channel with equality. Traffic is not distinguished or prioritized over the medium. According to this approach, each network station includes an Ethernet interface card that uses carrier-sense multiple-access with collision detection (CSMA/CD) to listen for traffic on the media. The absence of network traffic is detected by sensing a deassertion of a receive carrier on the media. A network station having data to send attempts to access the channel by waiting a predetermined time after the deassertion of a receive carrier on the media, known as the interpacket gap (IPG) interval.
Another approach has been to use a switched hub to marshal data flow on the network and allow network stations on the network to simultaneously transmit and receive data packets between each other without collisions. A full duplex environment has been proposed for Ethernet networks, referred to as IEEE 802.3.times., Full Duplex with Flow Control-Working Draft (0.3). The full duplex environment provides a two-way, point-to-point communication link between two network stations using a switched hub. Hence, two network stations can simultaneously transmit and receive Ethernet data packets between each other without collisions. However, network congestion occurs if a receiving network station or a switched hub is unable to receive data at the transmission rate of the transmitting network station. For example, traffic in a client-server environment is often dominated by client requests followed by a burst of frames from the server to the requesting client.
Although the full duplex environment enables the server to transmit packets while receiving requests from other clients, only a limited number of client requests can be output from the switched hub to the server. If the number of client requests exceeds the capacity of the hub switching port assigned to the server, some of the data packets will be lost. Alternatively, a client having limited buffer space may be unable to keep up with the transmission rate of the server, resulting in lost packets.
As an alternative to the CSMA/CD and switched hub approaches, various data flow control techniques have been implemented to regulate data flow on networks. One approach to reducing network congestion involves a sending network station temporarily suspending transmission of data packets. A proposed flow control arrangement for a full duplex environment, referred to as IEEE 802.3.times.[2], specifies generation of a flow control message, for example a PAUSE frame. A transmitting network station that receives the PAUSE frame enters a pause state in which no frames are sent on the network for a time interval specified in the PAUSE frame.
Another proposed flow control arrangement for a half duplex environment, referred to as "backpressure", causes a receiving network station to force a collision with the transmitting network station when the receive buffer of the receiving network station reaches a "receive buffer unavailable" state.
Although these approaches reduce data congestion and collisions, they also reduce the effective bandwidth of the network media. For example, if a full-duplex receiving network station repeatedly sends PAUSE frames specifying small pause intervals to a transmitting network station, the effective bandwidth of the media is reduced due to the transmission of a plurality of 64-byte PAUSE messages instead of data. If a switched hub has a transmit buffer for data to be sent to a network station, repeated transmission of PAUSE frames by the switched hub to that network station reduces the removal rate of the data from the transmit buffer. Hence, the transmit buffer containing the data for the network station may tend to overflow.
Network throughput may also be reduced if the specified pause interval is too long, resulting in the transmitting network station remaining idle after the receiving network station has eliminated the congestion.
Data loss may also occur if data packets are sent by the transmitting network station after generation of the PAUSE frame by the receiving network station. For example, the transmitting network station may send a number of data packets before receipt of the PAUSE frame due to propagation delays between the transmitting and receiving network stations. The network throughput is further reduced if upper layer protocol requires the last data to be resent.